package wangwenjun.phase2.concurrencypattern.eventbus.framework;

/**
 * @author ChangLiang
 * @date 2020/6/18
 */
@FunctionalInterface
public interface EventExceptionHandler {

    /**
     * EventBus 会将方法的调用交给Runnable接口去执行，我们都知道Runnable 接口不能
     * 抛出checked 异常信息，并且在每一个subscribe 方法中，也不允许将异常抛出从而影响
     * EventBus 对后续Subscriber 进行消息推送，但是异常信息又不能被忽略掉，因此注册一个
     * 异常回调接口就可以知道在进行消息广播推送时都发生了什么
     */
    void handle(Throwable cause, EventContext context);

}
